Theorem proving for functional programmers Sparkle: a functional theorem prover
نویسندگان
چکیده
Sparkle is a new theorem prover written and specialized in the functional programming language Clean. It is in the first place intended to be used by programmers on small parts of Clean-programs, combining theorem proving and programming into one process. It should of course also be usable by logicians interested in proving properties of larger programs. This paper presents an example proof about a small Clean-program. It will be shown that building this proof in Sparkle is very easy and will require little effort from Clean-programmers. The most important features of Sparkle will be illustrated. Two features in particular are helpful for programmers. Firstly, Sparkle is integrated in Clean and has a semantics based on lazy graph-rewriting. This allows the reasoning to take place on the program itself, rather than on a translated version which uses different concepts. Secondly, Sparkle supports automated reasoning. Trivial goals will automatically be discarded and suggestions will be given on more difficult goals.
منابع مشابه
Sparkle: a functional theorem prover
Sparkle is a new theorem prover written and specialized in the functional programming language Clean. It is in the first place intended to be used by programmers on small parts of Clean-programs, combining theorem proving and programming into one process. It should of course also be usable by logicians interested in proving properties of larger programs. This paper presents an example proof abo...
متن کاملDefining and Proving Invariants of Clean Programs
In a pure functional language like Clean the variables represent constant values; variables do not change in time. Hence it seems that temporality has no meaning in functional programs. However, in certain cases (e.g. in interactive or distributed programs, or in those that use IO) a series of values computed from one another can be considered as different states of the same “abstract object”. ...
متن کاملVerifying invariants of abstract functional objects — a case study ∗
In a pure functional language like Clean the values of the functional variables are constants; variables of functional programs do not change in time. Hence it seems that temporality has no meaning in functional programs. However, in certain cases (e.g. in interactive or distributed programs, or in ones that use IO) we would like to consider a series of values computed from each other as differ...
متن کاملExtending the Sparkle Core language with object abstraction
Sparkle is a theorem prover specially constructed for the functional programming language Clean. In a pure functional language like Clean the values of the functional variables are constants; variables of functional programs do not change in time. Hence it seems that temporality has no meaning in functional programs. However, in certain cases (e.g. in interactive or distributed programs, or in ...
متن کاملProving composed specifications of clean programs in Sparkle - T ∗
An important class of software systems uses mobile components: components that are downloaded through the network and integrated into a running application. Clean Dynamics can be used for implementing mobile code in a functional programming language. Our goal is to support the verification of correctness of such applications. The correctness of these applications depend on the properties of the...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008